Parallax Background (視差のある背景)
#Godot
#Background
ゲームには、背景画像はつきもの
よりリアルさ、没入感、スピード感を与えるのに役立つ
immersive(没入感)
gives the illusion of speed (スピード感を与える)
Parallax
視差 - Wikipedia
2地点での観測位置の違いにより、対象点が見える方向が違うこと
2D においては、
遠いBackground layerは遅く動く
近いForeground layerは速く動く
ということで視差を表現できる。
背景の移動速度が早ければ速いほど、playerはスピード感を感じる
Godotでこれを実現するには、
Camera2D
ParallaxBackGround (CanvasLayer)
ParallaxLayer
TextureRect
... n個
というNodeを作る
Camera2Dの直下のCanvasLayerは特別な意味を持ち、
そのカメラに作用する
ParallaxBackground
Camera2Dの子要素に、ParallaxBackgroundを追加
ParallaxBackgroundはCanvasLayerの1つ
CanvasLayerの特徴は、
位置情報を持たず、ゲームに描写される
ゲーム内のアートワークに表示を妨げられない
動かず、ゲーム画面内に残り続ける
ignore_camera_zoom : bool
ParallaxLayerがカメラのズームを無視してミラーする
これをチェックすると、ズームしようが
ParallaxLayer
配下にTextureRectを持つ
Scale
移動する速さ
小さくすると遅くなる (1がカメラと同じ速さ)
Mirrorring
ここで指定したpixelだけ移動したら繰り返す。
0にするとループしない
Offset
表示する高さを調整する
Hoppy Daysでは雲の背景をy方向に-750pxずらす(そうしないと、結構下に行かないと見えない)
例. 空と雲
https://gyazo.com/9c7d3041a58307f0c8f4de50b15ae27c
上から順に、
1
0.5
0.75
1
の順で、ParallaxLayerのScale.xを設定する
全体のOffsetを設定する
背景の重ねですでに画ができているなら、LayerではなくGround全体でBaseOffsetを設定したほうがいい
BaseOffset.y = -1024 くらいにしておく